<?php
	class CriarFormUpdate
	{
		public static function execute($objTabela)
		{
		    $tabela = $objTabela->getNomeTabela();

		    /*Iniciando a cria��o do conte�do do arquivo*/
		    $conteudo  = "\t" . 'include_once(' . "'" . '../config/config.inc' . "');\n";
		    $conteudo .= "\t" . 'include_once($raiz . ' . "'" . '/connections/banco.inc' . "');\n";

		    $conteudo .= "\n\t" . '$sql = ' . "'" . 'SELECT * FROM ' . $tabela . ' WHERE ';

		    $matInteiros = array('tinyint', 'smallint', 'mediumint', 'int', 'integer', 'bigint', 'float', 'double', 'double precision', 'real', 'numeric');
		    for($i = 0; $i < count($objTabela->getCampos()); $i++)
		    {
		    	if($objTabela->getKey($i) == 'PRI')
		    	{
					//$w para diminuir o comprimento da linha
					if(in_array($objTabela->getNomeTipoCampo($i), $matInteiros))
					{
						$get = '$_GET[' . "'_" . $objTabela->getCampo($i) . "']";
					}
					else
					{
						$get = '"' . "'" . '" . ' . '$_GET[' . "'_" . $objTabela->getCampo($i) . "']" . ' . "' . "'" . '"';
					}

		    		$where .= !$whereIniciado ? $objTabela->getCampo($i) . " = ' . " . $get : " . '" . ' AND ' . $objTabela->getCampo($i) . ' = ' . "' . " . $get;
		    		$whereIniciado = true;
		    	}
		    }

		    $conteudo .= $where . ';' . "\n\t" . '$cons = ' . $GLOBALS['banco'] . '_query($sql);' . "\n\t" . 'while($linha = ' . $GLOBALS['banco'] . '_fetch_array($cons))' . "\n\t{\n";

		    for($i = 0; $i < count($objTabela->getCampos()); $i++)
		    {
	    		$conteudo .= (strstr($objTabela->getCampo($i), 'data') == '') || strtolower($objTabela->getCampo($i)) == 'data_db' ? ("\t\t" . '$' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' = $linha[' . "'" . $objTabela->getCampo($i) . "'" . '];' . "\n") : ("\t\t" . '$' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' = $linha[' . "'" . $objTabela->getCampo($i) . "'" . '] ? Util::dataBancoExibir($linha[' . "'" . $objTabela->getCampo($i) . "'" . '])' . ': $linha[' . "'" . $objTabela->getCampo($i) . "'" . '];');
		    }

		    $conteudo .= "\t}\n?>\n";

		    /*Iniciando a cria��o do conte�do do form*/
		    $conteudo .= JavaScriptParaCamposNotNull::execute($objTabela);
		    
		    $conteudo .= '<form action="<?= Util::getMySelf() ?>" method="post" name="formCadastrar' . Util::nomeDbToClasse($tabela) . '">' . "\n";
		    $conteudo .= '<table border="0">' . "\n\t" . '<tr>' . "\n";

		    $asterisco  = ' valign="top">*</td><td';
		    $pularLinha = '</div>' . "\n\t\t" . '</td>' . "\n\t" . '</tr>' . "\n";
		    $puloLinha  = true;

		    for($i = 0; $i < count($objTabela->getCampos()); $i++)
		    {
   			    /*Criando os componetes do formul�rio*/
		    	if($objTabela->getExtra($i) != 'auto_increment' && $objTabela->getCampo($i) != 'data_db')
				{
					$puloLinha = !$puloLinha;
					//$tipo para diminuir o comprimento da linha
					$tipo = $objTabela->getNomeTipoCampo($i);

					$conteudo .= '<td';

					if($objTabela->getNull($i) != 'YES')
					{
						$conteudo .= $asterisco;
					}
					else
					{
						$conteudo .= '></td>' . "\n\t" . '<td';
					}

					$conteudo .= '><div align="left"><label for="' . $objTabela->getCampo($i) . '"><?= $matTabelasColunas[' . "'" . $objTabela->getNomeTabela() . "'" . '][' . "'" . $objTabela->getCampo($i) . "'" . '][' . "'" . 'nome' . "'" . '] ?></label><br />' . "\n";

					if ($tipo != 'tinyint' && $w != 'longtext')
					{
						if ($tipo == 'date')
						{
							// colocando calend�rio
							$conteudo   .= "\t" . '<input type="text" id="' . $objTabela->getCampo($i) . '" name="' . $objTabela->getCampo($i) . '" maxlength="10"'  . ' value="<?= $' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' ?>"/><input type="button" id="btn_' . $objTabela->getCampo($i) . '" value="..."><span class="msgErro"><?= $erro[' . "'" . $objTabela->getCampo($i) . "'" . '] ?></span>';
						}
						else
						{
							$conteudo .= '<input type="text" id="' . $objTabela->getCampo($i) . '" name="' . $objTabela->getCampo($i) . '" maxlength="<?= $matTabelasColunas[' . "'" . $objTabela->getNomeTabela() . "'" . '][' . "'" . $objTabela->getCampo($i) . "'" . '][' . "'" . 'tamanho' . "'" . '] ?>" value="<?= $' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' ?>"><span class="msgErro"><?= $erro[' . "'" . $objTabela->getCampo($i) . "'" . '] ?></span>';
						}
					}
					else
					{
						if ($tipo == 'tinyint')
						{
							$conteudo .= '<input type="checkbox" id="' . $objTabela->getCampo($i) . '" name="' . $objTabela->getCampo($i) . '" value="1"<?= $' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' ? ' . "'" . 'checked="checked"' . "'" . ' : ' . "''" . ' ?>><span class="msgErro"><?= $erro[' . "'" . $objTabela->getCampo($i) . "'" . '] ?></span>';
						}
						else
						{
							$conteudo .= '<textarea id="' . $objTabela->getCampo($i) . '" name="' . $objTabela->getCampo($i) . '" cols="38" rows="3"><?= $' . Util::nomeDbToAtributo($objTabela->getCampo($i)) . ' ?></textarea><span class="msgErro"><?= $erro[' . "'" . $objTabela->getCampo($i) . "'" . '] ?></span>';
						}
					}
					if($puloLinha)
					{
						$conteudo .= $pularLinha;
					}
					else
					{
						$conteudo .= '</div></td>';
					}
				}
		    }

		    if(!$puloLinha)
			{
				$conteudo .= '</tr>' . "\n";
			}

			$conteudo .= '<tr>' . "\n\t\t" . '<td colspan="4">' . "\n\t\t" . '<br />' . "\n\t\t" . '<font size="1">* preenchimento obrigat&oacute;rio</font>' . "\n\t\t" . '<br />' . "\n\t\t" . '<table width="100%" border="0" cellspacing="0">' . "\n\t" . '<tr>' . "\n\t\t" . '<td>' . "\n\t\t\t" . '<div align="right"><input type="button" name="Voltar" value="Voltar" onclick="JavaScript:history.back(-1)">' . "\n\t\t\t" . '</div>' . "\n\t\t" . '</td>' . "\n\t\t" . '<td width="10">&nbsp;</td>' . "\n\t\t" . '<td><input type="submit" name="Enviar" value="Enviar"></td>' . "\n\t" . '</tr>' . "\n\t" . '</table>' . "\n\t\t" . '</td>' . "\n\t" . '</tr>' . "\n\t" . '</table>';

		    for($i = 0; $i < count($objTabela->getCampos()); $i++)
		    {
		    	if($objTabela->getKey($i) == 'PRI')
		    	{
					$conteudo .= "\n" . '<input type="hidden" name="_' . $objTabela->getCampo($i) . '" value="<?= $_GET[' . "'_" . $objTabela->getCampo($i) . "']" . ' ?>">';
		    	}
		    }

			$conteudo .= '</form>' . "\n";

			$javascriptCalendarios = '';

			for($i = 0; $i < count($objTabela->getCampos()); $i++)
		    {
   			    /*Criando os componetes do formul�rio*/
		    	if($objTabela->getExtra($i) != 'auto_increment' &&
		    	   $objTabela->getCampo($i) != 'data_db'        &&
		    	   $objTabela->getTipo($i)  == 'date')
				{
					$javascriptCalendarios .= 'Calendar.setup' . "\n" . '(' . "\n\t" . '{' . "\n\t\t" . 'inputField : "' . '<?= $matTabelasColunas[' . "'" . $objTabela->getNomeTabela() . "'" . '][' . "'" . $objTabela->getCampo($i) . "'" . '][' . "'" . 'nome' . "'" . '] ?>' . '",' . "\n";
					$javascriptCalendarios .= "\t\t" . 'ifFormat : "%d/%m/%Y",' . "\n\t\t" . 'button : "btn_' . $objTabela->getCampo($i) . '"' . "\n\t" . '}' . "\n" . ');' . "\n";
				}
		    }
		    
		    if ($javascriptCalendarios != '')
		    {
		    	$javascriptCalendarios = '<script type="text/javascript">' . "\n" . $javascriptCalendarios . '</script>' . "\n";
		    }

		    $conteudo .= $javascriptCalendarios;
			
		    return $conteudo;
		}
	}
?>